// 思路： 每次选择一个最小的元素，放在最前面
// 时间复杂度：O(n^2)
// 空间复杂度：O(1)
// 稳定性：不稳定
// 适用场景：数据量较小
// 不适用于数据量较大的情况
function selectionSort(arr) {
    for (let i = 0; i < arr.length; i++) {
        let minIndex = i
        for(let j = i; j < arr.length; j++) {
            if(arr[j] < arr[minIndex]) {
                minIndex = j
            }
        }   
        if (minIndex !== i) {
            [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
        }    
    }
    return arr;
}

const arr = [5, 3, 8, 4, 2];
console.log(selectionSort(arr));